﻿ using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using Ucb.Workshop.Dal;
 using System.Data.SqlClient;
 using System.Windows.Forms;

    namespace Ucb.Workshop.Dal
    {
        public class Pedido
        {
            DBManager conexion = new DBManager();

            int _cod_pedido;
            public int Cod_pedido
            {
                get { return _cod_pedido; }
                set { _cod_pedido = value; }
            }
            DateTime _fecha;

            public DateTime Fecha
            {
                get { return _fecha; }
                set { _fecha = value; }
            }

            string _estado;

            public string Estado
            {
                get { return _estado; }
                set { _estado = value; }
            }

            float _total;

            public float Total
            {
                get { return _total; }
                set { _total = value; }
            }

            public void insertar()
            {
                string consulta = "INSERT INTO pedido(fecha, estado, total) VALUES('" + this.Fecha.ToShortDateString() + "', 'PEDIDO', " + this.Total + ")";
                //MessageBox.Show(consulta);
                conexion.EjecutarConsulta(consulta, "Pedido registrado!!!");

            }

            public void insertarCompra()
            {
                string consulta = "INSERT INTO pedido(fecha, estado, total) VALUES('" + this.Fecha.ToShortDateString() + "', 'COMPRA', " + this.Total + ")";

                conexion.EjecutarConsulta(consulta, "Compra registrada!!!");
                //conexion.ejecutarConsulta("insert into pedido(fecha, estado, total) values('2009-04-22','COMPRA', " + this.Total + ")", "Compra Registrada!!!");
            }

            // Metodo que modifica el estado del pedido
            public void comprarPedido()
            {
                string consulta = "UPDATE pedido SET estado = 'PEDIDO_COMPRA' WHERE cod_pedido = " + this.Cod_pedido;
                conexion.EjecutarConsulta(consulta);
            }

            // Metodo que elimina un pedido
            public void eliminar()
            {

                string consulta = "DELETE FROM pedido WHERE cod_pedido = " + this.Cod_pedido + " AND estado = 'PEDIDO'";
                conexion.EjecutarConsulta(consulta, "Pedido Eliminado!!!");
            }

            // metodo que retorna el cod_pedido con el cual se inserto en la BD
            public int cod_pedido()
            {
                int codigo = 0;
                string consulta = "SELECT MAX(cod_pedido) FROM pedido ";
                System.Data.SqlClient.SqlDataReader valores = conexion.ExeConsulta(consulta);

                if (valores.HasRows)
                {

                    while (valores.Read())
                    {
                        codigo = valores.GetInt32(0);
                    }

                }
                return codigo;
            }

            // Metodo que verifica si existe el codigo
            public bool existeCodigo()
            {
                string consulta = "SELECT * FROM pedido WHERE codigo = '" + this.Cod_pedido + "'";
                System.Data.SqlClient.SqlDataReader valores = conexion.ExeConsulta(consulta);

                if (valores.HasRows)
                    return true;
                else
                    return false;
            }

            // Metodo que recupera el detalle de un pedido
            /*
            public ArrayList detallePedido()
            {
                string consulta = "SELECT pv.codigo, p.descripcion, pv.cantidad, pv.precio_compra, pro.empresa FROM producto p, provee pv, detalle_pedido dp, proveedor pro WHERE dp.cod_provee = pv.cod_provee AND pv.cod_producto = p.cod_producto AND pv.cod_proveedor = pro.cod_proveedor AND dp.cod_pedido = "+this.Cod_pedido+"";
                SqlDataReader valores = conexion.ExeConsulta(consulta);
                if (valores.HasRows)
                {
                    ArrayList detalle = new string[valores.,7];
                    while (valores.Read())
                    {
                        string[] detalle = { valores.GetInt32(0).ToString(), valores.GetString(1), valores.GetInt32(2).ToString(), valores.GetFloat(3).ToString() };
                    
                    }
                    return null;
                }
                else 
                    return null;
          
            }*/
        }

    }

}
